package golangAps

import (
	"fmt"
	"github.com/nutsdb/nutsdb"
	"testing"
)

func TestNewStore(t *testing.T) {
	db := NewStore("data")
	_, err := db.SetBucket(DefaultBucket)
	if err != nil {
		fmt.Println(err.Error())
		return
	}

	err = db.db.Update(func(tx *nutsdb.Tx) error {
		err := tx.ZAdd(DefaultBucket, []byte("test201"), 43333, []byte("value12"))
		if err != nil {
			return err
		}

		//// 这个操作目前是不被允许的， nutsdb的bug, 目前在同一个事务中写数据后在额米有提交前，不能读到更新后的数据
		//members, err := tx.ZMembers(DefaultBucket, []byte("test201"))
		//if err != nil {
		//	return err
		//}
		//for member, _ := range members {
		//	fmt.Println("members: ", string(member.Value), member.Score)
		//}

		return nil
	})

	db.db.View(func(tx *nutsdb.Tx) error {
		members, err := tx.ZMembers(DefaultBucket, []byte("test001"))
		if err != nil {
			return err
		}
		for member, _ := range members {
			fmt.Println("members: ", string(member.Value), member.Score)
		}
		return nil
	})
	db.Close()
	if err != nil {
		fmt.Println(err.Error())
		return
	}
}
